POP3 Scan Mailbox V1.0 Release Notes ************************************ This file contains: o A list of changes made to Scan Mailbox since V0.75 which was the last public beta release o The "wish list" of enhancements which may be implemented in future releases. ----------------------------------------------------------------- The following changes have been made since version 0.75 Beta: o This version of the program does not expire and can be used indefinitely. o The command buttons have been replaced with a toolbar, complete with tooltips. Hover the mouse over each button to see what it does. o The toolbar may be switched off by means of a new option on the 'Miscellaneous' tab of Global Options for those who prefer a minimalist approach. o The 'Mailer', 'Retrieve' and 'Mail List' tabs have been removed from the Global Options dialogue and these settings are now available only in the Account Options dialogue. Any values already set in these tabs in Global Options will be lost when upgrading to this version and will need to be re-entered in the Account Options for each Account tab to which they apply. This change fixes a number of bugs concerned with the interaction between Global and Account Options. o Three new buttons have been added to the toolbar and a new checkbox has been added to the 'Retrieve' tab in Account Options. These provide more control over the amount of data retrieved from the POP3 server: The 'Retrieve' tab now contains three checkboxes marked "Retrieve Message Sizes", "Retrieve Headers" and "Retrieve SMTP Envelopes". The first two of these are ticked by default and the third is ticked by default if "Server supports *ENV" has been ticked, otherwise it is disabled. The settings on this tab can be set in any combination and control whether message sizes, headers and envelopes are retrieved automatically following a connection to the server. The three new toolbar buttons are labelled "Retrieve Envelopes", "Retrieve Message Sizes" and "Retrieve Headers" and these functions are also available from a new "Online" menu. Each button, and the corresponding menu item, is enabled only if the corresponding checkbox on the 'Retrieve' tab is unticked and allows each retrieve function to be controlled manually while online if the function is not performed automatically. Note that automatic mail kill is switched off for an account tab if any enabled checkboxes in the 'Retrieve' tab are unticked. In this situation, mail kill may be controlled manually by pressing the "Apply Mailkill Rules" button in the toolbar or by selecting the corresponding item in the 'Message' menu. Mailkill rules are aplied only to the message data which has been retrieved. A further related change is that the fields displayed in the mail list grid are now wholly controlled by the settings on the 'Mail List' tab in Account Options. Fields in the grid for data which is not retrieved automatically are initially blank and are filled in if the data is retrieved under manual control. o Three new columns have been added to the mail list grid and these are used to display the status of the message on the server (whether it is available, available but marked for deletion or deleted), whether it is selected, and the status of the message on the local system (how much of it, if any, has been retrieved). If "Resize Mail List Columns Automatically" has been switched off in File -> Global Options -> Miscellaneous, you will need to resize columns manually on the first run of a version which contains these columns. Alternatively, switch this option on before running this version for the first time. The new columns are described further below. o The new server status column is used to record the status of each message on the server. Symbols displayed in this field have the following meanings: Envelope: The message is available on the server and will be left on the server after disconnection Red cross superimposed on an envelope: The message is available on the server but has been marked for deletion. Unless the message is "undeleted" by the user before disconnection, it will be deleted on the server when the program disconnects Red cross without an envelope: The message has been deleted on the server and is no longer available Note that the use of this new column replaces the previous technique of overwriting the message number with an 'X'. o A green triangle is displayed in the 'Selected' column when a message is selected. Delete and Save functions apply to all messages which are marked as selected but Display functions apply to a single selected message. o The new 'Message' column is used to record the status of each message on the local system. A rectangular message symbol is displayed in this column and the colour and contents of this symbol have the following meanings: Colour: Red : Message not displayed or saved to a file Blue : Message displayed to the screen Green : Message saved to a file Contents: None: Message available on the server but no part of the message has been retrieved. This symbol is seen only if header retrieval is switched off Two lines: Headers have been retrieved Four short lines: Headers and part of the message body have been retrieved Four long lines: The entire message has been retrieved o Additional ways of selecting messages have been provided, including a means of selecting non-contiguous messages: Using the mouse: o Left mouse click without any other keys: Selects the current message and deselects all other messages. o + left mouse click: Deselects all messages and re-selects messages inclusively between the message which was selected first and the current message. o + left mouse click: Leaves selected any messages which were already selected and either deselects the current message if it was already selected or selects the current message if it was unselected. o Right mouse click with or without or keys: 32-bit version: If no messages are already selected, selects the current message, moves focus to this message and displays the context (message) menu If a single message is already selected, deselects that message, selects the current message, moves focus to this message and displays the context menu If more than one row is already selected, (a) if the user has right-clicked on one of the selected messages, leaves all selected messages selected and displays the context menu (b) if the user has right-clicked on a message which is not already selected, deselects all selected messages, selects the current message, moves focus to this message and displays the context menu 16-bit version: Displays the context menu without changing the selected status of any rows Using the keyboard: o Up/down keys without any other keys: If no messages are selected, moves focus only. If one or more messages are already selected, selects the previous/next message and deselects all other messages (this is equivalent to a left mouse click). o + up/down keys: Moves focus but retains any selections. o + up/down keys: Moves focus up/down, deselects all messages and re-selects messages inclusively between the message which was selected first and the current message (this is equivalent to + left mouse click). o : Selects the current message and retains selections. o +: If the current message is unselected, selects it. If the current message is selected, deselects it. In both cases, any other selections are retained o and : Moves focus up/down by the number of messages displayed in the grid, deselects all rows and reselects the first/last row on display o + or : Moves focus up/down by the number of messages displayed in the grid but retains selections o + or Moves focus up/down by the number of messages displayed in the grid, deselects all messages and re-selects messages inclusively between the message which was selected first and the current message o and : Moves focus to the first/last message displayed in the grid, deselects all rows and reselects the first/last message o + or : Moves focus to the first/last message displayed in the grid but retains selections o + or : Moves focus to the first/last message, deselects all rows and re-selects inclusively between the row which was selected first and the first/last message o The mail list grid now scrolls automatically by default when message details are added, when moving focus upwards or downwards within the grid and when saving messages to file. o Scrolling of the message list while retrieving message details is optional and is controlled by a new checkbox on the 'Miscellaneous' tab of Global Options. Users may wish to make a minor adjustment to the height of the program's window to ensure that the row displayed at the bottom of the grid is not truncated. o A "Select All Messages" item has been added to the Messages menu. o The 'Misc' tab in Account Options has been renamed 'Server' and the 'Server Supports *ENV' checkbox has been moved from the Account Configuration dialogue to the 'Server' tab. The state of this checkbox may be incorrect for User tabs after upgrading to this version (this applies ONLY to account tabs used with Demon Internet) and should be set appropriately after upgrading. o The number of messages deleted is now displayed in the status line after disconnection. o Message details are no longer written to the log file twice. o If the program is about to crash, diagnostic information is now written to the session log file even if the logging level has been set to zero (no logging) in File -> Global Options -> Log Files. o Message dates are now displayed in the mail list grid in a standard format of dd mmm yy. Conversion of dates and times to local time will be done in a later version. o When saving messages to a file with "Use Automatic File Names" switched on, the program will save messages addressed to in the file used for 's messages if one or more lines are inserted in the 'scanmail.ini' file with the format: Alias=, For example, the line: Alias=smb,scanmail causes messages addressed to 'smb' to be saved as if they had been addressed to 'scanmail'. 'Alias' lines may be entered at any point in the 'scanmail.ini' file, they have a global effect (across all Account tabs) and there is no means of setting or changing aliases within the program. o The deletion of messages on the server is now delayed until disconnection. If there are messages marked to be deleted when the user disconnects from the server, a new message box is displayed while the deletions are in progress giving a final chance to abort the deletions. Pressing the 'Cancel' button in this message box causes all messages to be undeleted and the program is left connected to the server. o The 'Undelete All' command button has been renamed 'Undelete' and now undeletes any selected messages which have been marked for deletion. o The 'Undelete All Messages' item in the Message menu has been renamed 'Undelete Message(s)' and has two subsidiary items which are 'All Message(s)' and 'Selected Messages'. o The 'Copy Field to Clipboard' item in the Message menu has been renamed "Copy Message Details to Clipboard' and the text, position and meaning of some of the subsidiary items has been changed. o The menu displayed from Message -> Copy Message Details to Clipboard -> Fields of Selected Message now contains a new item "Size". o Some items in the Message menu are now greyed out depending on how many messages are selected. The following table, in which E=menu item enabled and D=menu item disabled, lists the effects: Menu item Messages selected: 0 1 >1 Display Headers D E D Display Message D E D Display Part of Message D E D Save Selected Messages to File D E E Delete Selected Messages D E E Undelete Selected Messages D E E Copy Message Details to Clipboard: All details of Selected Messages D E E Fields of Selected Message D E D o The program retrieves the headers of message number n from the server by issuing the POP3 command 'TOP n 0'. Some servers wrongly respond to this command by returning the entire message. To cope with these non-compliant servers, a new 'Misc' tab has been added to the Account Options dialogue with a check box labelled "Server supports TOP n 0". This box is ticked by default; if unticked, the program uses the 'TOP n 1" command instead and this is more likely to be interpreted correctly by broken servers. o The "Size", "Date" and "Time" headers in the mail list grid are now left-aligned. o The program name is now displayed correctly as "POP3 Scan Mailbox" in the list of applications displayed by + + , + and + . o The 'Account has Users' dialogue, entered from File -> Configure -> Accounts and Users has been deleted and this menu item and the corresponding toolbar tooltip has been renamed 'Configure Accounts'. This change affects only those users of Demon Internet who have configured multiple users at their host. On the first run of this version, user tabs will be converted into account tabs and any new tabs for a specific user should be set up as new accounts, specifying the 'Login Name' as +. A side effect of this change is that the "U" command line option is no longer valid. If this is in use, the command line sequence '/C /U ' should be replaced with '/C : ' o A bug has been fixed which caused the program to crash when started in a minimised state and the '/C' command line option is used. o A bug has been fixed which causes the program to crash with 'Error 9 : Subscript out of range' if there is only one Account defined and command line options are used to connect to this account automatically. o There is a known bug which has not yet been fixed: when focus is on the mail list grid, it is not possible to switch applications with + or to close the program with + . o A bug has been fixed whereby the 'Wait for [x] seconds' box on the 'Mailer' tab of Global Options wasn't always greyed out correctly. o A bug has been fixed which, in rare circumstances, causes the program to crash when clicking in the mail list grid. o A bug has been fixed which sometimes resulted in the wrong messages being selected when switching account tabs. o The 'Select All Messages' item in the Messages menu is now enabled after disconnection when messages are displayed in the grid. o It is now possible to view a message which has been marked for deletion. o The coloured dots on the account tabs have been moved down by two pixels to centre them in the tabs. o The text displayed in the status bar when messages have been selected for deletion now reads "..., to be deleted" instead of "..., deleted". o A bug has been fixed which caused the program wrongly to insert a warning in the headers of a saved mail message if the day of the week is omitted from the 'Date:' header in a mail message. o Although there is still a minimum size for the main window, it is now possible to make the window much smaller than before. o Details of deleted messages are now written to logkill.txt only after a successful disconnection. This avoids logkill.txt wrongly recording that messages are deleted if the connection is lost during the disconnection phase but before disconnection is completed. o The text of the "forced disconnection" message has been changed to distinguish a disconnection forced by the user from a disconnection forced by the server or a line drop. o The program now discards any data received from the POP3 server after it has forced a disconnection. This prevents repeated "protocol error" popup boxes appearing if the server provides invalid responses. o Several bugs have been fixed in the code which deletes account tabs. These could cause the wrong account details to be associated with a tab or the program to crash. o The mail program, if any, defined in Account Options is not now invoked on disconnection if all waiting messages have been deleted by the program. o The status box which displays the current command issued to the server is now cleared after a forced disconnection. o The word 'Mailkill' has been changed to 'Mail Kill' in tooltips and menus. o Parentheses have been dropped in menu items such as 'All Details of Selected Message(s)'. o "Display Headers" has been changed to "Display Message Headers" in the Message menu, in the corresponding tooltip and in the 'Double Click' tab in the Global Options dialogue. o The logo displayed on the 'Welcome' screen (seen when SMB is started without a scanmail.ini file) has been changed to reflect the SMB name. My thanks to Jim Hill for the logo. o Help -> Release Notes now displays the changes.txt file instead of opening Windows Help. o A rudimentary Help file has been included (in the Windows 95/98/NT version only) which offers advice on support and advises users to watch the Web sites or subscribe to the smb-announce mailing list to find out when full Windows Help is available. o If an attempt is made to close the program while it is connected to a POP3 server, a message box is displayed advising the user to disconnect first. o The question "n messages have been marked for deletion - Are you sure you want to delete them?" is normally suppressed during automatic connections to enable a series of automatic connections to be performed without user intervention. This question is now asked on manual disconnection when the /S option has been used. ----------------------------------------------------------------- The Wish List: 1 OPTIONS 1.1 Option to check for new mail every minutes 1.2 Option to set the number of Account tabs per row in the 32-bit version with fixed tab widths 1.3 Option to specify that any named headers should be displayed on the grid 1.4 Option not to display in the grid mail from addresses on the 'accept' list, thus making it easier to see unexpected mail. Possibly by means of a 'Show All / Show Custom' toggle 1.5 Use locked tick boxes, a spinner control or a sliding indicator to set the logging level 1.6 Option to display details of new mail only (ignoring messages which the program has seen before). 2 MAIL KILL 2.1 Stop assuming a wildcard on each side of entries in the mail kill list and require it to be specified if required 2.2 Provide a means of temporarily disabling mail kill criteria on a per-tab basis 2.3 Allow kill rules based on any header 2.4 Allow kill rules based on a string occurring anywhere in any header 2.5 Provide a kill rule based on the result of reverse DNS lookups 2.6 Allow use of boolean operators: AND, OR and NOT 2.7 Provide 'send field to the kill list' feature with editing of the field 2.8 Allow different mail kill rules for each Account tab 2.9 Auto-reply or forward based on specified rules 2.10 Option to kill messages based on keywords found in the body with the program acting as a POP3 proxy server and client 2.11 Exclude mail addressed to "postmaster@" from automatic mail kill. Perhaps provide this string as a pre-configured 'accept criterion' and allow the user to delete it if desired 2.12 Implement mail bouncing 2.13 Implement a scheme for automatic mail kill based on usernames which expire after a configurable elapsed number of days 2.14 Mailkill to operate only on fields visible in the message grid 2.15 Perform mail kill in the idle time while waiting for the server to provide the headers of each message 2.16 Use a scoring system to determine which messages should be deleted 2.17 Allow marking of messages for deletion while offline to be actioned on the next connect to the server 2.18 If a message is selected when the mail kill dialogue is entered, insert information from the headers of the selected message in the 'Accept Mail' and 'Kill Mail' boxes. 3 MESSAGE OPERATIONS 3.1 Expand the message status symbols to indicate that a message contains MIME attachments 3.2 CTRL/Disconnect to prevent marked messages being deleted 3.3 key to mark a message for deletion and to undelete a message 3.4 Provide a means of sorting messages in the grid and changing the order in which they are displayed 3.5 Allow the user to specify an editor program for use when displaying messages 3.6 Allow drag and drop of messages into other programs 3.7 Option to overwrite, instead of appending to, a file when saving messages 3.8 Allow printing of messages 3.9 Provide an automatic option to retrieve mail from the server and save it in text files 3.10 Derive SMTP envelope information from the headers where possible, especially the value often recorded in the 'Return-Path:' header and Nyn Net's method of using an 'X-Nyx-Envelope-Data:' header. 3.11 Display 8-bit characters in header fields encoded using RFC 2047 MIME features. 3.12 Convert dates and times to local time before display and provide a setting for the local time offset in the 16-bit version. 3.13 Allow retrieval of specified headers only, such as the first headers or marked headers. 4 LOG FILES AND STATUS 4.1 Provide a tab status field on the display as well as a program status field, to be placed below the tab and above the message grid 4.2 Automatic archiving of logs, possibly with a date-based naming scheme 4.3 Allow the user to specify where log files are located 4.4 Include date and time on each line when writing grid message details to the session log file and include place-holding tabs for missing fields 4.5 Revise the format of the mail kill log 5 ACCOUNT CONFIGURATION 5.1 Allow Account tabs to be renamed 5.2 Warn if the user tries to create a new Account with the same name as an existing Account 5.3 Add "Save password" option to the dialogue displayed when connecting without a password having been defined 5.4 Allow Account tabs to be re-ordered 6 HELP 6.1 Update Windows Help to reflect the current program 6.2 should invoke context sensitive Help 6.3 Provide a "mouse pointer with a question mark" 6.4 Dynamically add items to the Help menu on startup if alternative manual formats (such as HTML) exist 7 GENERAL 7.1 For use when an ISP provides multiple email addresses routing into a single POP3 mailbox: provide a means of connecting to the POP3 server once and distributing messages to the appropriate user tabs, perhaps with user tabs as children of the main tab 7.2 Add a [Debug] section in the scanmail.ini file to replace the '/OV' option 7.3 Provide a 'white tab' on the very first start of ScanMail listing configuration information 7.4 Allow multiple concurrent connections to several POP3 servers 7.5 Allow use of multiple '.ini' files with the required file specified on the command line and an 'Export ini file' menu item 7.6 Allow command line options to be specified in the '.ini' file 7.7 Provide a 'Mail Action' option offering the user a choice of actions if there are more than messages on the server 7.8 Optionally play a tune when there is new mail on the server 7.9 Allow the program to run in the system tray 7.10 Make use of spare processing time while downloading headers to mail kill, allow marking/unmarking of messages for deletion, sort and view header or body 7.11 Allow a list of accounts for automatic connection to be supplied in a file and referenced by a command line "/F" option 7.12 Allow multiple instances of the program to be run concurrently with a configurable directory to hold the ini file, log files and kill files 7.13 Measure the elapsed time the program spends connected on a per tab basis and cumulatively; provide reports on time, number of messages processed and number killed 7.14 Measure throughput 7.15 Review keyboard accelerators and possibly replace some of them with or add a modifier 7.16 Replace the hourglass "busy" cursor with a rotating seahorse, a blinking red connected indicator or a flashing lightning indicator on the toolbar! 7.17 Allow the user to specify which toolbar buttons are displayed 7.18 Detect automatically a server which fails to respond correctly to 'TOP n 0' 7.19 Provide a progress indicator 7.20 Replace the Configuration, Mail Kill and Options dialogues with tabs on the main display. 7.21 Use balloons (similar to tooltips) to display all of a field when the mouse hovers over a truncated field in the mail list grid. 8 MAILBOMBS 8.1 Warn if more than messages received on a single connect which are (a) each greater in size than bytes and (b) from the same source and (c) not from an address on the 'accept' list and (d) to the same address and (e) of the same size